
/*++
Copyright (c) 2015 Microsoft Corporation

--*/
#pragma once

static char const g_pattern_database[] =
"(benchmark patterns \n"
" :status unknown \n"
" :logic ALL \n"
" :extrafuns ((?f1 Int Int Int Int) (?f2 Int Int Int) (?f3 Int Int Int) (?f4 Int Int Int)\n"
" (?f5 Int Int Int) (?f6 Int Int) (?f7 Int Int) (?f8 Int Int Int) (?f9 Int Int Int)\n"
" (?f10 Int) (?f11 Int) (?f12 Int Int) (?f13 Int Int) (?f14 Int Int Int) \n"
" (?f15 Int Int) (?f16 Int Int) (?f17 Int Int) (?f18 Int Int) (?f19 Int Int)\n"
" (?f20 Int Int) (?f21 Int) (?f22 Int) (?f23 Int) (?f24 Int Int) (?f25 Int Int)\n"
" )\n"
"\n"
" :formula (forall (a Int) (i Int) (e Int) \n"
" (= (?f2 (?f1 a i e) i) e)\n"
" :pats { (?f1 a i e) }\n"
" :weight { 0 })\n"
"\n"
" :formula (forall (a Int) (i Int) (j Int) (e Int) \n"
" (or (= i j) (= (?f2 (?f1 a i e) j) (?f2 a j)))\n"
" :pats { (?f2 (?f1 a i e) j) }\n"
" :weight { 0 })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) (t2 Int) \n"
" (or (not (= (?f3 t0 t1) 1))\n"
" (not (= (?f3 t1 t2) 1))\n"
" (= (?f3 t0 t2) 1))\n"
" :pats { (?f3 t0 t1) (?f3 t1 t2) })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) \n"
" (or (not (= (?f3 t0 t1) 1))\n"
" (not (= (?f3 t1 t0) 1))\n"
" (= t0 t1))\n"
" :pats { (?f3 t0 t1) (?f3 t1 t0) })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) (t2 Int) \n"
" (or (not (= (?f3 t0 (?f4 t1 t2)) 1))\n"
" (= (?f5 t2 t0) (?f4 t1 t2)))\n"
" :pats { (?f3 t0 (?f4 t1 t2)) })\n"
"\n"
" :formula (forall (t Int) \n"
" (= (?f25 (?f24 t)) t)\n"
" :pats { (?f24 t) })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) \n"
" (iff (= (?f3 t0 (?f6 t1)) 1)\n"
" (not (or (not (= t0 (?f6 (?f7 t0))))\n"
" (not (= (?f3 (?f7 t0) t1) 1)))))\n"
" :pats { (?f3 t0 (?f6 t1)) })\n"
"\n"
" :formula (forall (x Int) (t Int) \n"
" (or (not (= (?f8 x t) 1))\n"
" (= (?f9 x t) x))\n"
" :pats { (?f9 x t) })\n"
"\n"
" :formula (forall (x Int) (t Int) \n"
" (or (not (= (?f3 t ?f10) 1))\n"
" (iff (= (?f8 x t) 1)\n"
" (or (= x ?f11)\n"
" (= (?f3 (?f12 x) t) 1))))\n"
" :pats { (?f3 t ?f10) (?f8 x t) })\n"
"\n"
" :formula (forall (e Int) (a Int) (i Int) \n"
" (= (?f8 (?f2 (?f2 (?f13 e) a) i)\n"
" (?f7 (?f12 a))) 1)\n"
" :pats { (?f2 (?f2 (?f13 e) a) i) })\n"
"\n"
" :formula (forall (x Int) (f Int) (a0 Int) \n"
" (or (<= (+ a0 (* -1 (?f15 f))) 0)\n"
" (not (= (?f14 x a0) 1))\n"
" (= (?f14 (?f2 f x) a0) 1))\n"
" :pats { (?f14 (?f2 f x) a0) })\n"
"\n"
" :formula (forall (a Int) (e Int) (i Int) (a0 Int) \n"
" (or (<= (+ a0 (* -1 (?f16 e))) 0)\n"
" (not (= (?f14 a a0) 1))\n"
" (= (?f14 (?f2 (?f2 e a) i) a0) 1))\n"
" :pats { (?f14 (?f2 (?f2 e a) i) a0) })\n"
"\n"
" :formula (forall (S Int) \n"
" (= (?f2 (?f18 S) (?f17 (?f18 S))) 1)\n"
" :pats { (?f2 (?f18 S) (?f17 (?f18 S))) })\n"
"\n"
" :formula (forall (s Int) \n"
" (or (not (= 1 (?f19 s)))\n"
" (= (?f3 (?f12 s) ?f23) 1))\n"
" :pats { (?f19 s) })\n"
"\n"
" :formula (forall (t Int) \n"
" (not (or (= (?f20 t) ?f11)\n"
" (not (= (?f8 (?f20 t) ?f21) 1))\n"
" (not (= (?f14 (?f20 t) ?f22) 1))))\n"
" :pats { (?f20 t) })\n"
"\n"
" :extrafuns ((?f26 Int Int Int Int) \n"
" (?f27 Int Int Int Int Int))\n"
" \n"
" :formula (forall (A Int) (o Int) (f Int) (v Int)\n"
" (= (?f26 (?f27 A o f v) o f) v)\n"
" :pats { (?f27 A o f v) }\n"
" :weight { 0 }) \n"
"\n"
" :formula (forall (A Int) (o Int) (f Int) (p Int) (g Int) (v Int)\n"
" (or (= o p) (= (?f26 (?f27 A o f v) p g) (?f26 A p g)))\n"
" :pats { (?f26 (?f27 A o f v) p g) }\n"
" :weight { 0 })\n"
"\n"
" :formula (forall (A Int) (o Int) (f Int) (p Int) (g Int) (v Int)\n"
" (or (= f g) (= (?f26 (?f27 A o f v) p g) (?f26 A p g)))\n"
" :pats { (?f26 (?f27 A o f v) p g) }\n"
" :weight { 0 })\n"
"\n"
" :extrapreds ((?f28 Int Int))\n"
"\n"
" :formula (forall (t Int) (u Int) (v Int)\n"
" (or (not (?f28 t u))\n"
" (not (?f28 u v))\n"
" (?f28 t v))\n"
" :pat {(?f28 t u) (?f28 u v)})\n"
"\n"
" :formula (forall (t Int) (u Int)\n"
" (or (not (?f28 t u))\n"
" (not (?f28 u t))\n"
" (= t u))\n"
" :pat {(?f28 t u) (?f28 u t)})\n"
"\n"
" :extrafuns ((?f29 Int Int) (?f30 Int Int) (?f31 Int Int Int) (?f32 Int) (?f33 Int) (?f34 Int Int Int)\n"
" (?f35 Int Int) (?f36 Int) (?f37 Int) (?f38 Int) (?f39 Int Int) (?f40 Int)\n"
" (?f41 Int) (?f42 Int Int) (?f43 Int Int) (?f44 Int) (?f45 Int Int))\n"
"\n"
" :formula (forall (x Int) (p Int)\n"
" (or (not (?f28 (?f30 (?f31 x p)) ?f32))\n"
" (not (= (?f31 x p) p))\n"
" (= x p))\n"
" :pat { (?f28 (?f30 (?f31 x p)) ?f32)} )\n"
" \n"
" :formula (forall (h Int) (o Int) (f Int) (T Int)\n"
" (or \n"
" (not (= (?f39 h) ?f33))\n"
" (= (?f26 h o (?f34 f T)) ?f36)\n"
" (not (or (not (= (?f26 h (?f26 h o (?f34 f T)) ?f37) o))\n"
" (not (= (?f26 h (?f26 h o (?f34 f T)) ?f38) T)))))\n"
" :pat {(?f26 h o (?f34 f T))})\n"
"\n"
" :formula (forall (h Int) (o Int) (f Int)\n"
" (or\n"
" (not (= (?f39 h) ?f33))\n"
" (= (?f26 h o (?f35 f)) ?f36)\n"
" (not (or (not (= (?f26 h (?f26 h o (?f35 f)) ?f37) (?f26 h o ?f37)))\n"
" (not (= (?f26 h (?f26 h o (?f35 f)) ?f38) (?f26 h o ?f38))))))\n"
" :pat {(?f26 h o (?f35 f))})\n"
" \n"
" :formula (forall (h Int) (o Int)\n"
" (or \n"
" (not (= (?f39 h) ?f33))\n"
" (= (?f26 h o ?f38) ?f44)\n"
" (not (?f28 (?f26 h (?f26 h o ?f37) ?f41) (?f26 h o ?f38)))\n"
" (= (?f26 h (?f26 h o ?f37) ?f40) (?f42 (?f26 h o ?f38)))\n"
" (not (or (not (= (?f26 h o ?f41) (?f43 o)))\n"
" (not (= (?f26 h o ?f40) (?f43 o))))))\n"
" :pat {(?f28 (?f26 h (?f26 h o ?f37) ?f41) (?f26 h o ?f38))})\n"
"\n"
" :formula (forall (T Int) (h Int)\n"
" (or (not (= (?f39 h) ?f33))\n"
" (= (?f26 h (?f45 T) ?f38) ?f44))\n"
" :pat {(?f26 h (?f45 T) ?f38)})\n"
"\n"
" :extrafuns ((?f46 Int Int Int)\n"
" (?f47 Int Int Int)\n"
" (?f48 Int Int Int)\n"
" (?f49 Int)\n"
" (?f50 Int Int Int)\n"
" (?f51 Int Int Int)\n"
" (?f52 Int Int)\n"
" )\n"
"\n"
" :formula (forall (a Int) (T Int) (i Int) (r Int) (heap Int)\n"
" (or (not (= (?f39 heap) ?f33))\n"
" (not (?f28 (?f43 a) (?f46 T r)))\n"
" (= (?f47 (?f48 (?f26 heap a ?f49) i) T) ?f33))\n"
" :pat {(?f28 (?f43 a) (?f46 T r)) (?f48 (?f26 heap a ?f49) i)})\n"
"\n"
" :formula (forall (a Int) (T Int) (r Int)\n"
" (or (= a ?f36) \n"
" (not (?f28 (?f43 a) (?f46 T r)))\n"
" (= (?f52 a) r))\n"
" :pat {(?f28 (?f43 a) (?f46 T r))})\n"
"\n"
" :extrafuns ((?f53 Int Int Int)\n"
" (?f54 Int Int)\n"
" (?f55 Int)\n"
" (?f56 Int Int)\n"
" (?f57 Int)\n"
" (?f58 Int)\n"
" (?f59 Int Int Int)\n"
" (?f60 Int Int Int)\n"
" (?f61 Int Int Int)\n"
" )\n"
"\n"
" :extrapreds ((?f62 Int Int))\n"
" \n"
" :formula (forall (T Int) (ET Int) (r Int)\n"
" (or (not (?f28 T (?f53 ET r)))\n"
" (= (?f54 T) ?f55))\n"
" :pat {(?f28 T (?f53 ET r))})\n"
"\n"
" :formula (forall (A Int) (r Int) (T Int)\n"
" (or\n"
" (not (?f28 T (?f46 A r)))\n"
" (not (or (not (= T (?f46 (?f56 T) r)))\n"
" (not (?f28 (?f56 T) A)))))\n"
" :pat {(?f28 T (?f46 A r))})\n"
"\n"
" :formula (forall (A Int) (r Int) (T Int)\n"
" (or (not (?f28 T (?f53 A r)))\n"
" (= T (?f53 A r)))\n"
" :pat {(?f28 T (?f53 A r))})\n"
"\n"
" :extrafuns ((?f63 Int Int Int)\n"
" (?f64 Int Int Int)\n"
" )\n"
"\n"
" :formula (forall (A Int) (B Int) (C Int)\n"
" (or (not (?f28 C (?f63 B A)))\n"
" (= (?f64 C A) B))\n"
" :pat {(?f28 C (?f63 B A))})\n"
" \n"
" :formula (forall (o Int) (T Int)\n"
" (iff (= (?f47 o T) ?f33)\n"
" (or (= o ?f36)\n"
" (?f28 (?f43 o) T)))\n"
" :pat {(?f47 o T)})\n"
"\n"
" :formula (forall (o Int) (T Int)\n"
" (iff (= (?f51 o T) ?f33)\n"
" (or (= o ?f36)\n"
" (not (= (?f47 o T) ?f33))))\n"
" :pat {(?f51 o T)})\n"
"\n"
" :formula (forall (h Int) (o Int)\n"
" (or (not (= (?f39 h) ?f33))\n"
" (= o ?f36)\n"
" (not (?f28 (?f43 o) ?f57))\n"
" (not (or (not (= (?f26 h o ?f41) (?f43 o)))\n"
" (not (= (?f26 h o ?f40) (?f43 o))))))\n"
" :pat {(?f28 (?f43 o) ?f57) (?f26 h o ?f41)})\n"
"\n"
" :formula (forall (h Int) (o Int) (f Int) (T Int)\n"
" (or (not (= (?f39 h) ?f33))\n"
" (?f62 (?f26 h o (?f60 f T)) T))\n"
" :pat {(?f26 h o (?f60 f T))})\n"
"\n"
" :formula (forall (h Int) (o Int) (f Int)\n"
" (or\n"
" (not (= (?f39 h) ?f33))\n"
" (not (= (?f26 h o ?f58) ?f33))\n"
" (= (?f61 h (?f26 h o f)) ?f33))\n"
" :pat {(?f61 h (?f26 h o f))})\n"
"\n"
" :formula (forall (h Int) (s Int) (f Int)\n"
" (or (not (= (?f61 h s) ?f33))\n"
" (= (?f61 h (?f59 s f)) ?f33))\n"
" :pat {(?f61 h (?f59 s f))})\n"
"\n"
" :extrapreds ((?f65 Int Int))\n"
"\n"
" :formula (forall (x Int) (f Int) (a0 Int)\n"
" (or (<= (+ a0 (* -1 (?f15 f))) 0)\n"
" (not (?f65 x a0))\n"
" (?f65 (?f2 f x) a0))\n"
" :pat {(?f65 (?f2 f x) a0)})\n"
"\n"
" :formula (forall (a Int) (e Int) (i Int) (a0 Int) \n"
" (or (<= (+ a0 (* -1 (?f16 e))) 0)\n"
" (not (?f65 a a0))\n"
" (?f65 (?f2 (?f2 e a) i) a0))\n"
" :pats { (?f65 (?f2 (?f2 e a) i) a0) })\n"
"\n"
" :formula (forall (e Int) (a Int) (i Int) \n"
" (= (?f8 (?f2 (?f2 (?f13 e) a) i)\n"
" (?f7 (?f12 a))) ?f33)\n"
" :pats { (?f2 (?f2 (?f13 e) a) i) })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int)\n"
" (iff (?f28 t0 (?f6 t1))\n"
" (not (or (not (= t0 (?f6 (?f7 t0))))\n"
" (not (?f28 (?f7 t0) t1)))))\n"
" :pat {(?f28 t0 (?f6 t1))})\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) (t2 Int) \n"
" (or (not (?f28 t0 (?f4 t1 t2)))\n"
" (= (?f5 t2 t0) (?f4 t1 t2)))\n"
" :pats { (?f28 t0 (?f4 t1 t2)) })\n"
"\n"
" :formula (forall (t0 Int) (t1 Int) \n"
" (iff (?f28 t0 (?f6 t1))\n"
" (not (or (not (= t0 (?f6 (?f7 t0))))\n"
" (not (?f28 (?f7 t0) t1)))))\n"
" :pats { (?f28 t0 (?f6 t1)) })\n"
"\n"
" :formula (forall (x Int) (t Int) \n"
" (or (not (= (?f8 x t) ?f33))\n"
" (= (?f9 x t) x))\n"
" :pats { (?f9 x t) })\n"
"\n"
" :formula (forall (x Int) (t Int) \n"
" (or (not (?f28 t ?f10))\n"
" (iff (= (?f8 x t) ?f33)\n"
" (or (= x ?f11)\n"
" (?f28 (?f12 x) t))))\n"
" :pats { (?f28 t ?f10) (?f8 x t) })\n"
"\n"
" :formula (forall (e Int) (a Int) (i Int) \n"
" (= (?f8 (?f2 (?f2 (?f13 e) a) i)\n"
" (?f7 (?f12 a))) 1)\n"
" :pats { (?f2 (?f2 (?f13 e) a) i) })\n"
" )\n"
;
